<!-- 
    
1. header和footer占屏幕全部宽度，高度固定值。
2. 中间的contaier部分是一个三栏布局
3. left和right宽度固定，middle自适应填满整个区域；高度为三栏中最大的高度；

-->

<!DOCTYPE html>
<html lang="zh-Hans">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>圣杯布局</title>
    <style>
        * {
            margin: 0px;
            padding: 0px;
            font-size: 28px;
            color: #666;
            font-weight: bold;
        }


        header,
        footer {
            width: 100%;
            height: 80px;
            background-color: lightgrey;
            text-align: center;
        }

        .container {
            padding-left: 200px;
            padding-right: 300px;
            /*这两个padding用以挤压middle的内容，但是left和right也被挤压了，所以需要它们需要relative设置偏移*/
            height: 500px;
            background-color: rgba(216, 216, 216, 0.5);
        }

        .container>div {
            float: left;
            height: 100%;
        }

        .middle {            
            width: 100%;
            background-color: coral;
        }

        .left {
            width: 200px;            
            background-color: rgba(255, 192, 203, 0.39);
            margin-left: -100%;
            position: relative;
            left: -200px;
        }

        .right {
            width: 300px;            
            background-color: rgba(255, 0, 221, 0.342);
            margin-left: -300px;
            position: relative;
            left: 300px;
        }

        .clearfix::after {
            content: '';
            display: block;/*相当于添加了一个内容为空的文本段落*/
            clear: both;
            /*在dom中的效果是，调试界面只能在此元素内看到一个::after字符*/
            visibility: hidden;/*元素占用的空间仍然存在*/
            height: 0px;/*就算宽高都为0，文本还是会显示*/

            font-size: 0;/*再写这个可能是为了万无一失吧*/
        }

        .clearfix {
            *zoom: 1;
        }
        /*这是针对于IE6的，因为IE6不支持::after伪元素，这个神奇的zoom:1让IE6的元素可以清除浮动来包裹内部元素。具体意思的话，不用深究，听说微软的工程师自己都无法解释清楚。*/
    </style>
</head>

<body>
    <header>header</header>
    <div class="container clearfix">
        <div class="middle">
            middle 
            <p>圣杯布局和双飞翼布局的思路和需求都是一样的，只是实现方法上的细微区别</p>
            <p>middle部分空间占了左中右所区域，所以形似杯装效果---有情怀的人取名圣杯</p>
            <p>双飞翼则多用了一个窗口，存放middle部分的内容，两个边栏和中间部分是在视觉空间上独立开了.----有情怀的人取名双飞翼</p>
        </div>
        <div class="left">left</div>
        <div class="right">right</div>
    </div>

    <footer>footer</footer>
</body>

</html>